package writtenTraining.day20;
import java.util.*;

/**
 *day20:(1)模拟：经此一役小红所向无敌
 */

public class Main {
    public static void main(String[] args) {
        // 模拟

//         输入
        Scanner in = new Scanner(System.in);
        long a  = in.nextLong(), aNum = in.nextLong();
        long b = in.nextLong(), bNum = in.nextLong();

        // 开始攻击
        long ret = 0;
        while(true) {
//             攻击伤害
            ret += a;
            ret += b;

//             互相攻击
            aNum -= b;
            bNum -= a;

//             死亡状态
            if(aNum > 0 && bNum <= 0) {
                ret += (a * 10);
                break;
            } else if(aNum <= 0 && bNum > 0) {
                ret += (b * 10);
                break;
            } else if(aNum <= 0 && bNum <= 0){
                break;
            }

        }

        // 输出结果
        System.out.println(ret);
    }
}


/**
 * day20:(2)前缀和 + 贪心：DP6 连续子数组最大和
 */


 class Main1 {
    public static void main(String[] args) {
        // 前缀和 + 贪心

        // 输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        // 创建dp
        long[] dp = new long[n + 1];
        // 初始化
        // 填表
        for (int i = 1; i <= n; i++) {
            dp[i] = dp[i - 1] + in.nextInt();
        }

        int INF = 0x3f3f3f3f;
        long ret  = -INF;
        long prevMin = 0;
        for (int i = 1; i <= n; i++) {
            // 更新结果
            ret = Math.max(dp[i]-prevMin,ret);

            // 记录i前面的最小值
            prevMin = Math.min(prevMin,dp[i]);
        }
        // 返回值
        System.out.println(ret);
    }
}


/**
 * day20:(2)线性dp:DP6 连续子数组最大和
 */

 class Main2 {
    public static void main(String[] args) {
        // 线性dp

        // 输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        // 创建dp
        long[] dp = new long[n + 1];
        // 初始化
        // 填表
        int INF = 0x3f3f3f3f;
        long ret  = -INF;
        for (int i = 1; i <= n; i++) {
            dp[i] =Math.max(dp[i - 1], 0) + in.nextInt();
            ret = Math.max(ret,dp[i]);
        }


        // 返回值
        System.out.println(ret);
    }
}


/**
 * day20:(3)双指针：非对称子串之美（错误）
 */


class Main3 {
    public static void main(String[] args) {
        // 双指针

        // 输入
        Scanner in = new Scanner(System.in);
        char[] chs = in.next().toCharArray();
        int len = chs.length;

        int left = 0, right = len - 1;
        while(left < right) {
            if(chs[left] == chs[right]) {
                left++;
            } else {
                break;
            }
        }

        System.out.println(left < right ? right - left + 1 :
                0);

    }
}

/**
 * day20:(3)动态规划：非对称子串之美（时间复杂度高）
 */


 class Main4 {
    public static void main(String[] args) {
        // 动态规划思想

        // 输入
        Scanner in = new Scanner(System.in);
        char[] chs = in.next().toCharArray();
        int len = chs.length;

//         创建dp
        boolean[][] dp = new boolean[len][len];
//         初始化
//         填表
        long ret = 0;
        for(int i = len - 1; i >= 0 ; i--) {
            for(int j = i; j < len ; j++) {
                if(chs[i] == chs[j]) {
                    dp[i][j] = i + 1 < j ?
                            dp[i+1][j-1] : true;
                }

                ret = Math.max(ret,dp[i][j] ? 0 : j - i + 1);
            }
        }

//         返回值
        System.out.println(ret);

    }
}


/**
 * day20:(3)双指针+ 贪心：非对称子串之美
 */

 class Main5 {
    public static void main(String[] args) {
        // 双指针 + 贪心
//        回文子串 - 1 = 非回文



        // 输入
        Scanner in = new Scanner(System.in);
        char[] chs = in.next().toCharArray();
        int len = chs.length;
//         如果一开始就不相等
        if(chs[0] != chs[len-1]) {
            System.out.println(len);
            return;
        }

        char ch = chs[0];
        boolean flg = true;
//         判断所有字符是否都相等
        for(int i =0; i < len; i++) {
            if(ch != chs[i]) {
                flg = false;
                break;
            }
        }
        if(flg) {
            System.out.println(0);
        } else {
            flg = true;
            //         双指针得到最长的字符串
            int left = 0, right = len - 1;
            while(left < right) {
                if(chs[left] == chs[right]) {
                    left++;
                    right--;
                } else {
                    flg = false;
                    break;
                }
            }

            System.out.println(flg ? len - 1 : len);


        }



    }
}

